home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- *
- * NSSDC/CDF Header file for CDFstats.
- *
- * Version 1.1, 28-Feb-92, ST Systems (STX)
- *
- * Modification history:
- *
- * V1.0 23-Sep-91, J Love Original version (for CDF V2.1).
- * V1.1 28-Feb-92, J Love CDF V2.2. Added fill value filtering.
- *
- ******************************************************************************/
-
- /******************************************************************************
- * Function Prototypes.
- ******************************************************************************/
-
- #if defined(vms) | defined(__MSDOS__)
- void MinMaxInit (void);
- void MinMaxCheck (void);
- void Monotonic (void);
- void ASSIGN (void *, void *);
- Boolean EQ (void *, void *);
- Boolean NE (void *, void *);
- Boolean LT (void *, void *);
- Boolean GT (void *, void *);
- void DisplayMin (void);
- void DisplayMax (void);
- void DisplayFill (void);
- void CALCstat (long, long);
- void DISPstat (char *);
- void ConvertDataType (long, long, long, long, void *, void *);
- #endif
-
- #if defined(unix)
- void MinMaxInit ();
- void MinMaxCheck ();
- void Monotonic ();
- void ASSIGN ();
- Boolean EQ ();
- Boolean NE ();
- Boolean LT ();
- Boolean GT ();
- void DisplayMin ();
- void DisplayMax ();
- void DisplayFill ();
- void CALCstat ();
- void DISPstat ();
- void ConvertDataType ();
- #endif
-
- /******************************************************************************
- * Global variables.
- ******************************************************************************/
-
- enum states { _Init, _Steady, _Increase, _Decrease, _noIncrease,
- _noDecrease, _False };
-
- #if defined(CDFSTATS)
- CDFid id;
- Boolean checkMonotonicVar;
- Boolean rangeCheck;
- Boolean rangeCheckVar;
- Boolean filterFills;
- Boolean filterFillsVar;
- enum states state;
- void *validmin;
- void *validmax;
- void *fillval;
- FILE *OUTfp;
- void *buffer;
- void *min, *max, *last;
- void *minINrange, *maxINrange;
- long low, high;
- long fills;
- long valueN;
- Boolean oneINrange;
- Boolean hyper;
- Boolean minmaxInited;
- Boolean monoInited;
- long dataTypeV;
- long numElemsV;
- #else
- extern CDFid id;
- extern Boolean checkMonotonicVar;
- extern Boolean rangeCheck;
- extern Boolean rangeCheckVar;
- extern Boolean filterFills;
- extern Boolean filterFillsVar;
- extern enum states state;
- extern void *validmin;
- extern void *validmax;
- extern void *fillval;
- extern FILE *OUTfp;
- extern void *buffer;
- extern void *min, *max, *last;
- extern void *minINrange, *maxINrange;
- extern long low, high;
- extern long fills;
- extern long valueN;
- extern Boolean oneINrange;
- extern Boolean hyper;
- extern Boolean minmaxInited;
- extern Boolean monoInited;
- extern long dataTypeV;
- extern long numElemsV;
- #endif
-
- /******************************************************************************
- * MACRO. Checks status code from CDF library. Note the 'ExitBAD' statement.
- ******************************************************************************/
-
- #define CHECKstatus(status) { \
- char statusText[CDF_STATUSTEXT_LEN+1]; \
- if (status != CDF_OK) { \
- CDFlib (SELECT_, CDF_STATUS_, status, \
- GET_, STATUS_TEXT_, statusText, \
- NULL_); \
- printf ("%s (%ld).\n", statusText, status); \
- if (status < CDF_WARN) { \
- CDFlib (CLOSE_, CDF_, \
- NULL_); \
- ExitBAD; \
- } \
- } \
- }
-